package com.xyy.saas.payment.cores.enums;

/**
 * @Author: wuqiongda
 * @Date: 2019/12/23 17:59
 */
public enum ChannelEnum {

    /**
     * 直接支付 ： 微信
     */
    WX("wx", "微信"),
    /**
     * 直接支付 ： 支付宝
     */
    ALIPAY("alipay", "支付宝"),
    /**
     * 聚合支付 ： 微信
     */
    AGGREGATE_WX("aggregate_wx", "微信"),
    /**
     * 聚合支付 ： 支付宝
     */
    AGGREGATE_ALI("aggregate_alipay", "支付宝"),
    /**
     * 聚合支付 ： 银联
     */
    AGGREGATE_UPACP("aggregate_upacp", "银联"),
    /**
     * 直接支付 微信
     */
    CHANNEL_DIRECT_NAME_WX("directwx", "微信"),
    /**
     * 银联支付渠道
     */
    UNIONPAY("unionpay", "银联"),
    /**
     * 平安信用支付
     */
    PINGAN_CREDIT("pingan_credit", "平安信用支付"),
    /**
     * 京东银行卡支付
     */
    JD_CARD("jd_card", "京东银行卡支付"),
    /**
     * 京东聚合支付_微信
     */
    JDAGGREGATE_WX("jdaggregate_" + WX.getCode(), "京东聚合微信支付"),
    /**
     * 京东聚合支付_支付宝
     */
    JDAGGREGATE_ALIPAY("jdaggregate_" + ALIPAY.getCode(), "京东聚合支付宝支付"),
    /**
     * 京东采购融资支付
     */
    JD_CREDIT("jd_credit", "京东采购融资"),
    ABCHINA_LOAN("abchina_loan", "农行链e贷"),
    XYD_LOAN("xyd_loan", "小雨点白条"),
    ;

    private String code;

    private String name;

    ChannelEnum(String code, String name){
            this.code = code;
            this.name = name;
    }

    public String getCode() {
            return code;
    }

    public String getName() {
        return name;
    }

    /**
     * warning: 如果code不存在, 方法会报错
     * @param code
     * @return
     */
    public static com.xyy.saas.payment.cores.enums.ChannelEnum getChannelEnum(String code) {
        for (com.xyy.saas.payment.cores.enums.ChannelEnum channelEnum : com.xyy.saas.payment.cores.enums.ChannelEnum.values()) {
            if (channelEnum.code.equals(code)) {
                return channelEnum;
            }
        }
        return null;
    }

    public static boolean contains(String code) {
        if (code == null || code.trim().length() == 0) {
            return false;
        }
        for (com.xyy.saas.payment.cores.enums.ChannelEnum channelEnum : com.xyy.saas.payment.cores.enums.ChannelEnum.values()) {
            if (channelEnum.code.equals(code.trim())) {
                return true;
            }
        }
        return false;
    }
}
